home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Arsenal Files 8
/
The Arsenal Files Collection #8 (Arsenal Computer) (1996).ISO
/
g_games
/
bricks.zip
/
BRICKS.BAS
< prev
next >
Wrap
BASIC Source File
|
1996-07-05
|
3KB
|
172 lines
DECLARE SUB drawbricks ()
lives = 4
TYPE balltype
rise AS LONG
left AS LONG
ydir AS LONG
xdir AS LONG
x AS LONG
y AS LONG
END TYPE
DIM ball AS balltype
CLS
DIM SHARED bricks(19, 10)
FOR i = 1 TO 19
FOR j = 1 TO 10
bricks(i, j) = 1
NEXT j
NEXT i
restart:
ball.x = 40
ball.y = 12
ball.rise = 1
ball.left = 1
ball.ydir = 1
ball.xdir = 1
pad = 45
DO
LOCATE 20, 1
PRINT "Lives: "; lives
PRINT "Score: "; score
t = t + 1
IF t = 80 THEN
LOCATE ball.y, ball.x
PRINT " "
IF ball.xdir = 1 THEN
ball.x = ball.x + ball.left
ELSE
ball.x = ball.x - ball.left
END IF
IF ball.ydir = 1 THEN
ball.y = ball.y + ball.rise
ELSE
ball.y = ball.y - ball.rise
END IF
IF ball.y < 11 THEN
IF ball.x < (4 * 19) AND ball.x > 0 THEN
IF bricks(INT((ball.x - 1) / 4) + 1, ball.y) = 1 THEN
bricks(INT((ball.x - 1) / 4) + 1, ball.y) = 0
score = score + 100
IF ball.ydir = -1 THEN
ball.ydir = 1: ball.y = ball.y + ball.rise
ELSE
ball.ydir = -1: ball.y = ball.y - ball.rise
END IF
SELECT CASE (ball.x / 4) - FIX(ball.x / 4)
CASE 0:
ball.left = ball.left
ball.xdir = 1
CASE .25:
ball.left = ball.left
ball.xdir = -1
END SELECT
CLS
LOCATE 12, 1
PRINT (ball.x / 4) - FIX(ball.x / 4)
drawbricks
END IF
END IF
END IF
t = 0
LOCATE 22, pad - 1
PRINT " -------- "
END IF
IF ball.x < 4 THEN ball.xdir = 1
IF ball.x > 76 THEN ball.xdir = -1
IF ball.y < 2 THEN ball.ydir = 1
IF ball.y > 21 THEN
IF ball.x >= pad AND ball.x <= pad + 8 THEN
ball.ydir = -1
SELECT CASE ball.x - pad
CASE 0:
ball.left = 4
ball.xdir = -1
CASE 1:
ball.left = 3
ball.xdir = -1
CASE 2:
ball.left = 2
ball.xdir = -1
CASE 3:
ball.left = 1
ball.xdir = -1
CASE 4:
ball.left = 0
ball.xdir = 1
CASE 5:
ball.left = 1
ball.xdir = 1
CASE 6:
ball.left = 2
ball.xdir = 1
CASE 7:
ball.left = 3
ball.xdir = 1
END SELECT
ELSE
lives = lives - 1
IF lives < 1 THEN END
GOTO restart
END IF
END IF
LOCATE INT(ball.y), INT(ball.x)
PRINT "o"
SELECT CASE INKEY$
CASE "6": pad = pad + 1:
CASE "4": pad = pad - 1:
END SELECT
IF pad < 2 THEN pad = 2
IF pad > 70 THEN pad = 70
LOCATE 22, pad - 1
PRINT " -------- "
LOOP
SUB drawbricks
FOR i = 1 TO 19
FOR j = 1 TO 10
IF bricks(i, j) = 1 THEN
LOCATE j, 4 * i - 3
PRINT "[--]"
END IF
NEXT j
NEXT i
END SUB